Control system for storage and retrieval systems

ABSTRACT

A warehouse storage and retrieval system including an array of multilevel storage racks having at least one transfer deck, picking isles and storage areas disposed along picking isles, the storage areas being configured to hold differing loads, and a controller including a management module configured to variably size the storage areas of the array of multilevel storage rack modules and assign each of the variably sized storage areas to a corresponding one of the differing loads, wherein the storage and retrieval system is arranged to transport the differing loads for placement in the variably sized storage areas assigned by the controller.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/089,434, filed on Nov. 25, 2013 (now U.S. Pat. No. 9,051,120 issuedJun. 9, 2015), which is a continuation of U.S. patent application Ser.No. 12/757,337, filed Apr. 9, 2010 (now U.S. Pat. No. 8,594,835 issuedNov. 26, 2013), which claims the benefit of U.S. Provisional PatentApplication No. 61/168,349 filed on Apr. 10, 2009, the disclosures ofwhich are incorporated herein by reference in their entireties.

This application is related to U.S. patent application Ser. No.12/757,381, entitled “STORAGE AND RETRIEVAL SYSTEM,” filed on Apr. 9,2010; U.S. patent application Ser. No. 12/757,220, entitled “STORAGE ANDRETRIEVAL SYSTEM,” filed on Apr. 9, 2010; U.S. patent application Ser.No. 12/757,354, entitled “LIFT INTERFACE FOR STORAGE AND RETRIEVALSYSTEMS,” filed on Apr. 9, 2010; and U.S. patent application Ser. No.12/757,312, entitled “AUTONOMOUS TRANSPORTS FOR STORAGE AND RETRIEVALSYSTEMS,” filed on Apr. 9, 2010, the disclosures of which areincorporated by reference herein in their entireties.

BACKGROUND

1. Field

The exemplary embodiments generally relate to material handling systemsand, more particularly, to automated storage and retrieval systems.

2. Brief Description of Related Developments

Warehouses for storing case units may generally comprise a series ofstorage racks that are accessible by transport devices such as, forexample, fork lifts, carts and elevators that are movable within aislesbetween or along the storage racks or by other lifting and transportingdevices. These transport devices may be automated or manually driven.Generally the case units stored on the storage racks are contained incarriers, for example storage containers such as trays, totes orshipping cases, or on pallets. Generally, incoming pallets to thewarehouse (such as from manufacturers) contain shipping containers (e.g.cases) of the same type of goods. Outgoing pallets leaving thewarehouse, for example, to retailers have increasingly been made of whatmay be referred to as mixed pallets. As may be realized, such mixedpallets are made of shipping containers (e.g. totes or cases such ascartons, etc.) containing different types of goods. For example, onecase on the mixed pallet may hold grocery products (soup can, soda cans,etc.) and another case on the same pallet may hold cosmetic or householdcleaning or electronic products. Indeed some cases may hold differenttypes of products within a single case. Conventional warehousingsystems, including conventional automated warehousing systems do notlend themselves to efficient generation of mixed goods pallets. Inaddition, storing case units in, for example carriers or on palletsgenerally does not allow for the retrieval of individual case unitswithin those carriers or pallets without transporting the carriers orpallets to a workstation for manual or automated removal of theindividual case units.

It would be advantageous to have a storage and retrieval system forefficiently storing and retrieving individual items without containingthose items in a carrier or on a pallet.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing aspects and other features of the disclosed embodimentsare explained in the following description, taken in connection with theaccompanying drawings, wherein:

FIG. 1 schematically illustrates an exemplary storage and retrievalsystem in accordance with an exemplary embodiment;

FIG. 2 schematically illustrates a control system of a storage andretrieval system in accordance with an exemplary embodiment;

FIG. 3 illustrates a portion of the control system of FIG. 2 inaccordance with an exemplary embodiment;

FIG. 4 illustrates a control schematic for a storage and retrievalsystem in accordance with an exemplary embodiment;

FIG. 4A schematically illustrates a portion of the control system ofFIG. 2 in accordance with an exemplary embodiment;

FIG. 4B illustrates a resource reservation queue in accordance with anexemplary embodiment;

FIG. 5 schematically illustrates a portion of the control system of FIG.2 in accordance with an exemplary embodiment;

FIG. 6A illustrates a conventional organization of item storage in astorage bay;

FIG. 6B illustrates an organization of items in a storage bay inaccordance with an exemplary embodiment;

FIG. 6C illustrates a comparison of unused storage space between theitem storage of FIG. 6A and the item storage of FIG. 6B;

FIG. 7 is a schematic illustration of a portion of a storage andretrieval system in accordance with an exemplary embodiment;

FIG. 8 schematically illustrates a portion of the control system of FIG.2 in accordance with an exemplary embodiment;

FIG. 9 is a schematic illustration of a portion of a storage andretrieval system in accordance with an exemplary embodiment;

FIG. 10 is a schematic diagram illustrating traffic management in astorage and retrieval system in accordance with an exemplary embodiment;

FIGS. 11A and 11B are schematic diagrams illustrating transport robotcommunications in accordance with an exemplary embodiment;

FIG. 12 is a schematic illustration of bot traffic management inaccordance with an exemplary embodiment;

FIG. 13 is a schematic illustration of a method in accordance with anexemplary embodiment; and

FIGS. 14 and 15 are flow diagrams of exemplary methods in accordancewith the exemplary embodiments.

DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENT(S)

FIG. 1 generally schematically illustrates a storage and retrievalsystem 100 in accordance with an exemplary embodiment. Although thedisclosed embodiments will be described with reference to theembodiments shown in the drawings, it should be understood that thedisclosed embodiments can be embodied in many alternate forms. Inaddition, any suitable size, shape or type of elements or materialscould be used.

In accordance with one exemplary embodiment the storage and retrievalsystem 100 may operate in a retail distribution center or warehouse to,for example, fulfill orders received from retail stores for case units(where case units as used herein means items not stored in trays, ontotes or on pallets, e.g. uncontained). It is noted that the case unitsmay include cases of items (e.g. case of soup cans, boxes of cereal,etc.) or individual items that are adapted to be taken off of or placedon a pallet. In accordance with the exemplary embodiments, shippingcases or case units (e.g. cartons, barrels, boxes, crates, jugs, or anyother suitable device for holding items) may have variable sizes and maybe used to hold items in shipping and may be configured so they arecapable of being palletized for shipping. It is noted that when, forexample, pallets of case units arrive at the storage and retrievalsystem the content of each pallet may be uniform (e.g. each pallet holdsa predetermined number of the same item—one pallet holds soup andanother pallet holds cereal) and as pallets leave the storage andretrieval system the pallets may contain any suitable number andcombination of different case units (e.g. each pallet may hold differenttypes of items—a pallet holds a combination of soup and cereal). Inalternate embodiments the storage and retrieval system described hereinmay be applied to any environment in which items are stored andretrieved.

The storage and retrieval system 100 may be configured for installationin, for example, existing warehouse structures or adapted to newwarehouse structures. In one exemplary embodiment, the storage andretrieval system may include in-feed and out-feed transfer stations 170,160, multilevel vertical conveyors 150A, 150B, a storage structure 130,and a number of autonomous vehicular transport robots 110 (referred toherein as “bots”). In alternate embodiments the storage and retrievalsystem may also include bot transfer stations that may provide anindirect interface between the bots 110 and the multilevel verticalconveyors 150A, 150B. The in-feed transfer stations 170 and out-feedtransfer stations 160 may operate together with their respectivemultilevel vertical conveyors 150A, 150B for transferring case units toand from one or more levels of the storage structure 130. It is notedthat while the multilevel vertical conveyors are described herein asbeing dedicated inbound conveyors 150A and outbound conveyors 150B, inalternate embodiments each of the conveyors 150A, 150B may be used forboth inbound and outbound transfer of case units/items from the storageand retrieval system. As may be realized, the storage and retrievalsystem 100 may include multiple in-feed and out-feed multilevel verticalconveyors 150A, 150B that are accessible by, for example, bots 110 oneach level of the storage and retrieval system 100 so that one or morecase unit(s), uncontained or without containment (e.g. case unit(s) arenot sealed in trays), can be transferred from a multilevel verticalconveyor 150A, 150B to each storage space on a respective level and fromeach storage space to any one of the multilevel vertical conveyors 150A,150B on a respective level. The bots 110 may be configured to transferthe uncontained case units between the storage spaces and the multilevelvertical conveyors with one pick (e.g. substantially directly betweenthe storage spaces and the multilevel vertical conveyors). By way offurther example, the designated bot 110 picks the uncontained caseunit(s) from a shelf of a multilevel vertical conveyor, transports theuncontained case unit(s) to a predetermined storage area of the storagestructure 130 and places the uncontained case unit(s) in thepredetermined storage area (and vice versa).

The bots 110 may be configured to place case units, such as the abovedescribed retail merchandise, into picking stock in the one or morelevels of the storage structure 130 and then selectively retrieveordered case units for shipping the ordered case units to, for example,a store or other suitable location. In one exemplary embodiment, thebots 110 may interface directly with the multilevel vertical conveyors150A, 150B through, for example, extension of a bot transfer armrelative to a frame of the bot 110. The bot transfer arm may haveextendable fingers for interfacing with slatted or fingered supportshelves of the multilevel vertical conveyors as described in U.S. patentapplication Ser. No. 12/757,312, entitled “AUTONOMOUS TRANSPORTS FORSTORAGE AND RETRIEVAL SYSTEMS,”), previously incorporated herein byreference in its entirety.

In one exemplary embodiment, the storage and retrieval system 100 mayinclude a bot positioning system for positioning the bot adjacent theshelves of the multilevel vertical conveyors 150A, 150B forpicking/placing a desired pickface (e.g. one or more case units asdescribed in greater detail below) from/to a predetermined one of theshelves (e.g. the bot 110 is positioned so as to be aligned with thepickface). The bot positioning system may also be configured tocorrelate the extension of the bot transfer arm with the movement (e.g.speed and location) of the multilevel vertical conveyor shelves so thatthe transfer arm is extended and retracted to remove (or place)pickfaces from predetermined shelves of the multilevel verticalconveyors 150A, 150B. For exemplary purposes only, the bot 110 may beinstructed by, for example, control server 120 or any other suitablecontrol device of the storage and retrieval system to extend the bottransfer arm into the path of travel of the pickface. As the pickface iscarried by the multilevel vertical conveyor 150A, fingers of the bottransfer arm pass through the fingers of the shelf for transferring thepickface from the shelf to the transfer arm (e.g. the pickface is liftedfrom the fingers via relative movement of the shelf and the transferarm).

The storage structure 130 may include multiple levels of storage rackmodules where each level includes an array of storage spaces (arrayed onthe multiple levels and in multiple rows on each level), picking aisles130A formed between the rows of storage spaces, and transfer decks 130B.The picking aisles 130A and transfer decks 130B being arranged forallowing the bots 110 to traverse respective levels of the storagestructure 130 for placing case units into the picking stock and thenselectively retrieve ordered case units for shipping the ordered itemsto, for example, a store or other suitable location. As may be realized,the storage and retrieval system may be configured to allow randomaccessibility to the storage spaces as will be described in greaterdetail below. For example, all storage spaces in the storage structure130 may be treated substantially equally when determining which storagespaces are to be used when picking and placing case units from/to thestorage structure 130 such that any storage space of sufficient size canbe used to store case units. The storage structure 130 of the exemplaryembodiments may also be arranged such that there is no vertical orhorizontal array partitioning of the storage structure. For example,each multilevel vertical conveyor 150A, 150B is common to all storagespaces (e.g. the array of storage spaces) in the storage structure 130such that any bot 110 can access each storage space and any multilevelvertical conveyor 150A, 150B can receive case units from any storagespace on any level so that the multiple levels in the array of storagespaces substantially act as a single level (e.g. no verticalpartitioning). The multilevel vertical conveyors 150A, 150B can alsoreceive case units from any storage space on any level of the storagestructure 130 (e.g. no horizontal partitioning).

The storage structure 130 may also include charging stations (not shown)for replenishing, for example, a battery pack of the bots 110. In oneexemplary embodiment, the charging stations may be located at, forexample, a transfer station so that the bot can substantiallysimultaneously transfer items between, for example, the bot and amultilevel vertical conveyor 150A, 150B while being charged.

The bots 110 and other suitable features of the storage and retrievalsystem 100 may be controlled by, for example, one or more central systemcontrol computers (e.g. control server) 120 through, for example, anysuitable network 180. The network 180 may be a wired network, a wirelessnetwork or a combination of a wireless and wired network using anysuitable type and/or number of communication protocols. It is notedthat, in one exemplary embodiment, the system control server 120 may beconfigured to manage and coordinate the overall operation of the storageand retrieval system 100 and interface with, for example, a warehousemanagement system, which in turn manages the warehouse facility as awhole.

As described above, the components of the storage and retrieval systemdescribed herein are in communication with and/or controlled by controlserver 120 as shown in FIGS. 2 and 3. The control server 120 may includea collection of substantially concurrently running programs that areconfigured to manage the storage and retrieval system 100 including, forexemplary purposes only, controlling, scheduling and monitoring theactivities of all active system components, managing inventory andpickfaces, and interfacing with the warehouse management system 2500.The active system components may be the physical entities that act uponthe items to be stored and retrieved. The active system components mayinclude, as a non-limiting example, items such as bots, in-feed andout-feed stations, multilevel vertical conveyors, the network and userinterface terminals.

It is noted that a “pickface” as used herein may comprise one or moreuncontained case units and may correspond to the load of a single bot110 that is placed in a space on a storage shelf. Conversely, the botload may be established based on a pickface determination. The storageshelf may hold a set of one or more merchandise items (e.g. case units)placed one behind the other on the storage shelf to be used in picktransactions for filling customer orders. As may be realized, the spaceenvelope or area planform of each pickface may be different. By way ofexample, uncontained cases, such as those directly transported by themultilevel vertical conveyors have various different sizes (e.g.differing dimensions). Also, as noted each pickface may include one ormore uncontained cases. Thus, the length and width of each pickfacecarried by the multilevel vertical conveyors may be different. In oneexample, all case units in a given pickface are of the same stockkeeping unit (SKU) and originally from the same pallet. In alternateembodiments, each pickface may include any suitable items. As may berealized the determination of the pickfaces may be variable within thestorage and retrieval system such that the size and locations of thepickface are dynamically changeable. It is also noted that interfacingwith the warehouse management system 2500 allows the control server 120to receive and execute pallet orders and to submit and executereplenishment orders as will be described below.

The control server 120 may be configured to order the removal of caseunits from the storage and retrieval system for any suitable purpose, inaddition to order fulfillment, such as, for example, when case units aredamaged, recalled or an expiration date of the case units has expired.In one exemplary embodiment, the control server 120 may be configured togive preference to case units that are closer to their expiration datewhen fulfilling orders so those case units are removed from the storageand retrieval system before similar case units (e.g. with the same SKU)having later expiration dates. In the exemplary embodiments, thedistribution (e.g. sortation) of case units in the storage and retrievalsystem is such that the case units can be provided for delivery to apalletizing station in any suitable order at any desired rate using onlytwo sortation sequences. The control server 120 may be configured tofulfill orders so that the case units are provided by the bots 110 torespective multilevel vertical conveyors 150B in a first predeterminedsequence (e.g. a first sortation of items) and then removed from therespective multilevel vertical conveyors 150B in a second predeterminedsequence (e.g. a second sortation of items) so that the case units maybe placed on pallets (or other suitable shipping containers/devices) ina predetermined order. For example, in the first sortation of case unitsthe bots 110 may pick respective pickfaces (e.g. one or more case units)in any order. The bots 110 may traverse the picking aisles and transferdeck (e.g. circulate around the transfer deck) with the pickface until apredetermined time when the pickface is to be delivered to apredetermined multilevel vertical conveyor 150B. In the second sortationof case units, once the pickfaces are on the multilevel verticalconveyor 150B the pickfaces may circulate around the conveyor until apredetermined time when the pickfaces are to be delivered to theout-feed transfer station 160. Referring also to FIG. 13, it is notedthat the order of pickfaces delivered to the pallets may correspond to,for example, store plan rules 9000. The store plan rules 9000 mayincorporate, for example, an aisle layout in the customer's store or afamily group of items corresponding to, for example, a particularlocation in the store where the pallet will be unloaded or a type ofitem. The order of pickfaces delivered to the pallets may alsocorrespond to a durability of the case units. For example, crushableitems may be delivered to the pallet after heavier more durable itemsare delivered to the pallet.

The control server 120 in combination with the structural/mechanicalarchitecture of the storage and retrieval system 100 enables maximumload balancing. As described herein, the storage spaces/storagelocations are decoupled from the transport of the case units through thestorage and retrieval system. For example, the storage volume (e.g. thedistribution of case units in storage) is independent of and does notaffect throughput of the case units through the storage and retrievalsystem. The storage array space may be substantially uniformlydistributed with respect to output. The horizontal sortation (at eachlevel) and high speed bots 110 and the vertical sortation by themultilevel vertical conveyors 150B substantially creates a storage arrayspace that is substantially uniformly distributed relative to an outputlocation from the storage array (e.g. an out-feed transfer station 160of a multilevel vertical conveyor 150B). The substantially uniformlydistributed storage space array also allows case units to be output at adesired substantially constant rate from each out-feed transfer station160 such that the case units are provided in any desired order. Toeffect the maximum load balancing, the control architecture of thecontrol server 120 may be such that the control server 120 does notrelate the storage spaces within the storage structure 130 (e.g. thestorage array) to the multilevel vertical conveyors 150B based on ageographical location of the storage spaces (which would result in avirtual partitioning of the storage spaces) relative to the multilevelvertical conveyors 150B (e.g. the closest storage spaces to themultilevel vertical conveyor are not allocated to cases moving from/tothat multilevel vertical conveyor). Rather, the control server 120 maymap the storage spaces uniformly to each multilevel vertical conveyor150B and then select bots 110, storage locations and output multilevelvertical conveyor 150B shelf placement so that case units from anylocation in the storage structure come out from any desired multilevelvertical conveyor output (e.g. at the out-feed transfer stations) at apredetermined substantially constant rate in a desired order.

The control server 120 may include one or more server computers 120A,120B and a storage system or memory 2400. In alternate embodiments thecontrol server 120 may have any suitable configuration. In one exemplaryembodiment, the server computers 120A, 120B may be configuredsubstantially identically to each other where one server computer 120Ais designated as a primary server and the other server computer 120B isdesignated as a secondary server. In normal operation the storage andretrieval system, such as storage and retrieval system 100, issubstantially controlled by the primary server computer 120A. In theevent of a failure of the primary server computer 120A, the secondaryserver computer 120B may be configured to assume operation of thestorage and retrieval system 100 in any suitable manner. For example,the secondary server computer 120B may be configured to initializeitself with operating information stored in databases 2401 (FIG. 3) of,for example the storage system 2400. In alternate embodiments thesecondary server computer 120B may be configured to reconstruct theoperational databases based on, for example, database snap-shots or logfiles, reboot and then initialize itself from the restored databases.While only two server computers 120A, 120B are shown, in alternateembodiments there may be any suitable number of server computersconnected to each other so that there are any suitable number of levelsof redundancy. In one exemplary embodiment, the control server 120 mayinclude or be coupled to any suitable number of host computers, whereeach of the host computers is configured to operate one or more levelsof the storage structure 130. In the event of a host computer failure,the control server 120 may be configured to assign operation of the oneor more levels of the failed host computer to another host computer sothat the storage and retrieval system operates substantiallyuninterrupted. In alternate embodiments, the control server 120 may beconfigured to assume operational control over the one or more levels ofthe failed host computer.

The storage system 2400 of the control server 120 may be physicallyseparated from the server computers 120A, 120B. In one exemplaryembodiment, the storage system 2400 may be located in the same facilityas the control server 120 while in other alternate embodiments thestorage system 2400 may be located off-site from the facility in whichthe control servers 120A, 120B are located. In still other alternateembodiments, the storage system may be integral to one or more of theserver computers 120A, 120B. The storage system 2400 may be configuredwith any suitable number of storage locations for providing dataredundancy for holding operational databases and other runtime data. Thecontrol server 120 may be configured to access, update or otherwisemanage the operational databases 2401 and other runtime data (such asfor example, event logs 2402 (FIG. 3) or other suitable data) in anysuitable manner and for any suitable purposes. The control server 120may also be configured to record a maintenance history for eachcomponent (e.g. bots, transfer stations, conveyors, etc.) of the storageand retrieval system. In the case of the bots 110, each bot may beconfigured to send the control server 120 information pertaining to themaintenance of the bot (e.g. when the bot is charged, the distancetraveled by the bot, repair information or any other suitableinformation) at any suitable time intervals. In other exemplaryembodiments, the control server 120 may request maintenance informationfrom the bots 110.

The control server 120 may be configured to communicate with the activesystem components of the storage and retrieval system 100 through thenetwork 180. As described above, the network 180 may be a wired network,a wireless network, or a combination of wired and wireless networks. Inone exemplary embodiment, all fixedly located components of the storageand retrieval system 100 may be connected to the control server 120through a wired portion of network 180 while the movably locatedcomponents of the storage and retrieval system (such as e.g. the bots110) may be connected to the control server through a wireless portionof the network 180. In alternate embodiments fixed elements may beconnected to the control server 120 through wireless communication. Instill other alternate embodiments the movable elements may be connectedto the control server 120 through any suitable wired communications.

The network 180 may be a single physical network or be divided intoseparate physical networks. For example, in one exemplary embodiment,each level of the storage structure 130 may have its own individualcommunication network, which in turn communicates with the controlserver 120. Each individual communication network may operate on, forexample, a different communication frequency than other different onesof the individual communication networks. In other exemplaryembodiments, groups of levels (e.g. one or more levels) of the storagestructure 130 may share individual networks, which are in turn incommunication with the control server 120. It is noted that the controlserver 120 may be configured to communicate with the one or morecommunication networks using a shared network or one or more privatenetworks.

In one exemplary embodiment, as can be seen in FIG. 3, the controlserver 120 includes a front end 2510 and an activity controller 2520. Itis noted that while the control server 120 is described as having theconfiguration shown in FIG. 3, in alternate embodiments the controlserver 120 may have any suitable configuration. In this exemplaryembodiment, the front end 2510 may include any suitable programs ormodules for carrying out the activities of the storage and retrievalsystem. As a non-limiting example, the front end 2510 may include anorder manager 2511, an inventory manager 2512 and a management server2513. The order manager 2511 may be configured to process orderssubmitted by the warehouse management system 2500.

The inventory manager 2512 may be configured to provide inventoryservices to any suitable components of the storage and retrieval system100 and/or the warehouse management system 2500. The management server2513 may be configured to monitor the processes of the storage andretrieval system 100. The activity controller 2520 may include anysuitable programs or modules for controlling the activities of thestorage and retrieval system 100. For example, the activity controller2520 may include a bot management subsystem 2521, a resource manager2522, a controller monitor 2523 and an event processor 2524. The botmanagement subsystem 2521 may be configured to manage bot movement andtransport activity. The resource manager 2522 may be configured tomanage the activities of the active and passive (e.g. bot chargingstations, etc.) components of the storage and retrieval system (which inalternate embodiments may include bot activity). The controller monitor2523 may be configured to monitor various external controllers 2550 foroperating one or more active components such as, for example, components150A, 150B, 160A, 160B, 210, 220, 2501, 2503 of the storage andretrieval system 100. The event processor 2524 may be configured tomonitor events such as picking or placing of case units within thestorage structure 130, available storage locations, active bots, or anyother suitable events and update one or more databases 2401 and/or eventlogs 2402 accordingly.

In one exemplary embodiment one or more user interface terminals oroperator consoles 2410 may be connected to the control server 120 in anysuitable manner, such as through, for example, network 180. In oneexemplary embodiment, the user interface terminals 2410 may besubstantially similar to the computer workstations described in, forexemplary purposes only, U.S. patent application Ser. No. 12/757,354,entitled “LIFT INTERFACE FOR STORAGE AND RETRIEVAL SYSTEMS,”, previouslyincorporated herein by reference in its entirety. The one or more userinterface terminals 2410 may be configured to allow an operator of thestorage and retrieval system 100 to control one or more aspects of thestorage and retrieval system 100. In one exemplary embodiment, one ormore of the user interface terminals 2410 may allow for manualentry/modification/cancellation of customer orders and replenishmentorders. In another example, the user interface terminals 2410 may allowfor inspection, modification or otherwise accessing/entering data withinthe databases of the system 100 such as, for example, the databasesmaintained by the inventory manager 2512. One or more of the userinterface terminals 2410 may allow an operator to graphically viewinventory tables and provide a mechanism for specifying criteria forwhich case units to display (e.g. showing information for case unitswith a specified SKU, information about a SKU, how full a specifiedstorage level is, the status of pick or replenishment orders, or anyother suitable information) to the user of the user interface terminal2410. One or more of the user interface terminals 2410 may be configuredto allow for the display of current order, historical order and/orresource data. For example, the historical data may include the originsof a specified item in storage, fulfilled orders or other suitablehistorical data (which may include historical data pertaining to thestorage and retrieval system components). Current order data mayinclude, for example, current order status, order placement dates, itemSKUs and quantities or any other suitable information pertaining tocurrent orders. The resource data may include, for example, any suitableinformation about the active or passive resources within the storage andretrieval system. The user interface terminals 2410 may be configured toallow generation of any suitable reports 2699 (FIG. 4) pertaining to theoperation of the storage and retrieval system 100. The user interfaceterminals 2410 may provide a “real time” or up to date representation ofthe picking structure. In one example, the picking structurerepresentation may be a graphical representation presented on, forexample, a display of the user interface terminal 2410 indicating forexample, a status of one or more components of the storage and retrievalsystem. For example, a graphical layout of the entire storage andretrieval system 100 may be displayed such that a location of the bots110 for each level is shown, the case units in each storage slot areshown, the position of case units being transported within the storagestructure are shown or any other suitable graphical informationpertaining to the operation of the storage and retrieval system 100 maybe shown. One or more of the user interface terminals 2410 may beconfigured such that an operator can change a status of the storage andretrieval system resources, such as, for exemplary purposes only, takean aisle, conveyor and/or bot (and/or any other suitable systemresource) out of service or place a system resource back in service aswell as add new resources to (and/or remove resources from) the system100.

Referring also to FIG. 4, an exemplary operation of the storage andretrieval system will be described in accordance with an exemplaryembodiment. The warehouse management system 2500 receives a customerorder and examines the order to determine which case units in the ordercan be fulfilled by the storage and retrieval system 100. Any suitableportion of the order that can be fulfilled by the storage and retrievalsystem 100 is forwarded to the control server 120 by the warehousemanagement system 2500. It is noted that portions of the order that arenot filled by the storage and retrieval system may be fulfilled manuallysuch that the storage and retrieval system is capable of partial palletbuilds. For exemplary purposes only, an order where case units arerequested to be picked from the storage and retrieval system 100 andplaced onto one or more pallets may be called a “pallet order”.Conversely, orders issued by the storage and retrieval system 100 toreplenish case units into the storage and retrieval system 100 may becalled, for exemplary purposes “replenishment orders”. The orders may bebroken down into tasks for the bots 110 to execute. For exemplarypurposes only, a bot task which is part of a pallet order may be calleda picking task and a bot task that is part of a replenishment order maybe called a put away task.

Referring again to FIG. 1, as an exemplary overview of an orderfulfillment process including both replenishment and pallet orders, caseunits for replenishing the picking stock are input at, for example,depalletizing workstations 210 (so that case units bundled together onpallets or other suitable container-like transport supports) areseparated and individually carried on, for example, conveyors 240 orother suitable transfer mechanisms (e.g. manned or automated carts,etc.) to the in-feed transfer stations 170 (Block 2200, FIG. 14). Thedepalletizing workstations 210 may be configured to, for exemplarypurposes only, pick layers from the pallets and convert each layer ofcase units from the pallet into a stream of case units going into thestorage and retrieval system 100. The depalletizing workstations 210 mayinclude any suitable features, such as measurement equipment fordetermining a size of the case units removed from the pallet so that thecase units may be placed on an appropriate or predetermined level of thestorage structure 130. It is noted that the height of the levels of thestorage structure 130 may be non-uniform such that the height of one ormore levels is greater than or smaller than the height of other levelsin the storage structure 130. The in-feed transfer stations 170 load theindividual case units (which form pickfaces) onto respective multilevelvertical conveyors 150A, which carry the pickfaces to the predeterminedlevel of the storage structure 130 (Blocks 2210 and 2220, FIG. 14). Thebots 110 located on the predetermined level of the storage structure 130interface with the multilevel vertical conveyor 150A for removing theindividual pickfaces from the multilevel vertical conveyor 150A (Block2230, FIG. 14). The bots 110 assigned to the predetermined leveltraverse the transfer deck(s) for accessing any picking aisle fortransferring the pickfaces to any predetermined storage module of thestorage structure 130 (Blocks 2240 and 2250, FIG. 14). When an order forindividual case units is made the bots 110 retrieve the correspondingpickfaces from a designated storage module of the storage structure 130and transfer the ordered case units (e.g. pickfaces) to multilevelvertical conveyors 150B (Blocks 2300 and 2310, FIG. 15). It is notedthat the control server 120, for example, may schedule the timing atwhich the bots 110 transfer their loads to a predetermined shelf of therespective multilevel vertical conveyor 150B so that each case arrivesat the palletizing workstations 160 in a predetermined order or sequence(e.g. time) where the sequence corresponds to a sequence for buildingthe outbound pallet or for otherwise sorting the picked items, as willbe described in greater detail below (Blocks 2320 and 2330, FIG. 15).The multilevel vertical conveyor 150B transports the pickfaces to theout-feed transfer stations 160 where the pickfaces are transported topalletizing workstations 220 by conveyors 230 where the case unit(s)that make up the pickface are placed on outbound pallets (or othersuitable container-like transport supports) for shipping to a customer(Blocks 2340 and 2350, FIG. 15). The out-feed transfer stations 160 andthe palletizing workstations 220 may be referred to collectively as anorder assembly station. As may be realized, the storage and retrievalsystem allows for ordering mixed case units of any suitable quantitywithout having to pick and transport, for example, entire trays, totesor pallets of items to and from the storage structure 130.

The order fulfillment and replenishment processes will now be describedin greater detail. When an order is to be fulfilled the warehousemanagement system 2500 issues an execute order message (FIG. 5) to, forexample, the order manager 2511. The execute order message refers to apallet identification specified at the time of order entry and itspecifies an out-feed station 2860A, 2860B and/or palletizing station2820A, 2820B. As can be seen in FIGS. 3 and 4, the order manager 2511may be configured to receive the orders from the warehouse managementsystem 2500. The order manager 2511 may issue tasks to individual levelmanagers 2608 to pick up and/or put away items. It is noted thatcommunication between, for example, the order manager 2511 and the levelmanagers 2608 may be over any suitable communication channel/protocolincluding, but not limited to, a three-phase commit protocol configuredto substantially ensure that the communications are not duplicated inthe event of, for example, a system outage or interruption. The levelmanagers 2608 may be configured to control a respective level of thestorage structure 130. In one exemplary embodiment, there may be onelevel manager 2608 per storage structure level. In alternateembodiments, there may be more than one level associated with each levelmanager 2608. In still other alternate embodiments, there may be morethan one level manager 2608 associated with each level in the storagestructure 130. Each level manager 2608 may be configured to receivetasks to be completed by the respective level and issue tasks for therespective bots 110A, 110B, 110N to execute. In this example, bots 110Acorrespond to bots of, for example, level 1 of the storage structure130, bots 110B correspond to bots of, for example, level 2 of thestorage structure and bots 110N correspond to, for example bots of level“n” of the storage structure, where the storage structure has anysuitable number of levels.

Referring also to FIG. 4A, each level manager 2608 may be split into,for example, two services such as a front end service 2650 and a backendor bot service 2651. The front end service 2650 may include, forexample, a control service 2653 and an idle bot manager 2652. The backend 2651 may include traffic managers 2654 and bot proxy 2680. Astructure manager 2656 and a reservation manager 2608A may be shared bythe front end service 2650 and the back end service 2651. In alternateembodiments the level managers 2608 may have any suitable configurationfor controlling one or more respective levels of the storage andretrieval system 100. In one example, pick and put requests may enter acontrol service 2653 through the front end 2650. For example, the frontend 2650 may receive requests from, for example, the order manager 2511and/or inventory manager 2512 and dispatch those requests to idle bots110 in the form of bot jobs or tasks. In alternate embodiments the frontend may receive requests from the back end 2651. The front end may beconfigured to convert the request to a job and assign that job a uniqueidentification. The job may be placed in one or more queues 2655 (e.g. ahigh priority queue or a low priority queue) that are shared between anidle bot manager 2652 and the control service 2653. Jobs may beclassified as high priority when, for exemplary purposes only, the jobsare needed for processing a current order. Jobs may be classified as lowpriority, for exemplary purposes, when the jobs are needed forprocessing orders to be fulfilled at a later time (e.g. after thecurrent order). It is noted that the status of jobs may change from lowto high priority as other jobs are completed. In alternate embodimentsthe jobs may have any suitable classification for prioritizing the jobs.If there are no idle bots 110 to perform a job (as determined by e.g.the idle bot manager 2652 as described below) the front end relinquishescontrol to an event loop which will notify the front end when one ormore bots register as idle so that one of the one or more idle bots canbe assigned the job.

The idle bot manager 2652 may be configured to maintain a list of, forexample, bot proxies representing idle bots 110 (e.g. bots not activelytransporting, picking or putting items within the storage and retrievalsystem 100). The bot proxy list may be actively updated to reflectchanges in bot status from, for example, idle to active and vice versa.The idle bot manager 2652 may be configured to determine, in anysuitable manner, the best bot 110 for executing a task and inform theassociated bot proxy 2680 for executing the task. In one exemplaryembodiment and for exemplary purposes only, when determining which botshould be assigned a given job, the idle bot manager 2652 may analyzeone or more of whether a bot is already in a desired picking aisle anddirectionally oriented for picking an item (if the job is a pick), ifthere is a bot 110 blocking an aisle needed for fulfilling an order sothat the bot can be moved to grant access to the aisle, and whetherthere are any outstanding high priority jobs to be fulfilled before lowpriority jobs are considered.

When jobs are assigned to a bot, the idle bot manager 2652 may beconfigured to determine a travel route for fulfilling the job. The idlebot manager 2652 may be in communication with any suitable components ofthe storage and retrieval system, such as the structure manager 2656,which provide any suitable information such as, for example, informationfor analyzing load balancing of the transfer decks, bots and multilevelvertical conveyors, disabled areas of the storage structure 130 (e.g.places where maintenance is being performed), a position of the botrelative to a pick or put position for the job, the distance to betraveled by the bot for completing the job or any other suitablecharacteristics of the storage and retrieval system 100 when determininga route for the bot. It is noted that the structure manager 2656 mayalso be configured to monitor and track any suitable changes to thestorage structure, such as for example, bad or broken storage slats orlegs on the storage racks, undetectable index markers, added storage,travel and/or transfer areas and disabled or removed areas and conveythe changes in the storage structure 130 to, for example, the idle botmanager 2652 and/or bot proxies 2680 for the determination of the bottravel routes. Suitable examples of storage racks having slats or legsare described in, for example, U.S. patent application Ser. No.12/757,381, entitled “STORAGE AND RETRIEVAL SYSTEM,” and, U.S. patentapplication Ser. No. 12/757,220, entitled “STORAGE AND RETRIEVALSYSTEM,” previously incorporated herein by reference in their entirety.

When determining the travel route for fulfilling a job the storage andretrieval system 100 may be configured to allow substantially unimpededaccess to substantially all areas of the storage and retrieval system inthe event of, for example, a stoppage in the system so that the systemcontinues operation with substantially no or minimized loss inthroughput. Referring also to FIG. 1, a stoppage in the system mayinclude, but is not limited to, a disabled bot 110 within a pickingaisle or on a transfer deck, a disabled multilevel vertical conveyor150A, 150B and/or a disabled in-feed or out-feed transfer station 160,170. As may be realized, the storage and retrieval system 200, 300, 400may be configured to allow substantially redundant access to each of thestorage locations within the picking aisles. For example, a loss of aninput multilevel vertical conveyor 150A may result in substantially noloss of storage space or throughput as there are multiple inputmultilevel vertical conveyors 150A that can transport case units to eachlevel/storage space within the storage structure 130. As anotherexample, the loss of a bot out of a picking aisle may result insubstantially no loss of storage space or throughput as there aremultiple bots 110 on each level capable of transferring case unitsbetween any one of the storage spaces and any one of the multilevelvertical conveyors 150A, 150B. In still another example, the loss of abot 110 within a picking aisle may result in substantially no loss ofstorage space or throughput as only a portion of a picking aisle isblocked and the storage and retrieval system may be configured toprovide multiple paths of travel to each of the storage spaces or typesof case units within the storage spaces. In yet another example, a lossof an output multilevel vertical conveyor 150B may result insubstantially no loss of storage space or throughput as there aremultiple output multilevel vertical conveyors 150B that can transportcase units from each level/storage space within the storage structure130. In the exemplary embodiments, transport of the case units (e.g. viathe multilevel vertical conveyors and bots) is substantially independentof storage capacity and case unit distribution and vice versa (e.g. thestorage capacity and case unit distribution is substantially independentof transport of the case units) such that there is substantially nosingle point of failure in either storage capacity or throughput of caseunits through the storage and retrieval system.

As described above, the control server 120, through, for exemplarypurposes only, the idle bot manager 2652 may be configured tocommunicate with the bots 110, multilevel vertical conveyors 150A, 150B,in-feed or out-feed transfer stations 160, 170 and other suitablefeatures/components of the storage and retrieval system in any suitablemanner. The bots 110, multilevel vertical conveyors 150A, 150B andtransfer stations 160, 170 may each have respective controllers thatcommunicate with the control server 120 for conveying and/or receiving,for example, a respective operational status, location (in the case ofthe bots 110) or any other suitable information. The control server mayrecord the information sent by the bots 110, multilevel verticalconveyors 150A, 150B and transfer stations 160, 170 for use in, forexample, planning order fulfillment or replenishment tasks.

As may be realized, any suitable controller of the storage and retrievalsystem such as for example, the idle bot manager 2652 of the controlserver 120, may be configured to create any suitable number ofalternative pathways for retrieving one or more items from theirrespective storage locations when a pathway provided access to thoseitems is restricted or otherwise blocked. For example, the controlserver 120 may include suitable programming, memory and other structurefor analyzing the information sent by the mots 110, multilevel verticalconveyors 150A, 150B and transfer stations 160, 170 for planning a bot's110 primary or preferred route to a predetermined item within thestorage structure. The preferred route may be the fastest and/or mostdirect route that the bot 110 can take to retrieve the item. Inalternate embodiments the preferred route may be any suitable route. Thecontrol server 120 may also be configured to analyze the informationsent by the bots 110, multilevel vertical conveyor 150A, 150B andtransfer stations 160, 170 for determining if there are any obstructionsalong the preferred route. If there are obstructions along the preferredroute the control server 120 may determine one or more secondary oralternate routes for retrieving the item so that the obstruction isavoided and the item can be retrieved without any substantial delay in,for example, fulfilling an order. It should be realized that the botroute planning may also occur on the bot 110 itself by, for example, anysuitable control system, such as control system onboard the bot 110. Asan example, the bot control system may be configured to communicate withthe control server 120 for accessing the information from other bots110, the multilevel vertical conveyors 150A, 150B and the transferstations 160, 170 for determining the preferred and/or alternate routesfor accessing an item in a manner substantially similar to thatdescribed above. It is noted that the bot control system may include anysuitable programming, memory and/or other structure to effect thedetermination of the preferred and/or alternate routes.

Referring also to FIG. 12, as a non-limiting example, in an orderfulfillment process the bot 3303, which is traversing transfer deck130B, may be instructed to retrieve an item 499 from picking aisle 3311.However, there may be a disabled bot 3302 blocking aisle 3311 such thatthe bot 3303 cannot take a preferred (e.g. the most direct and/orfastest) path to the item 499. In this example, the control server mayinstruct the bot 3303 to traverse an alternate route such as through anyunreserved picking aisle (e.g. an aisle without a bot in it or an aislethat is otherwise unobstructed) so that the bot 3303 can travel along,for example, a second transfer deck or a bypass aisle 132. The bot 3303can enter the end of the picking aisle 3311 opposite the blockage from,for example, bypass aisle 132 so as to avoid the disabled bot 3302 foraccessing the item 499. As can be seen in FIG. 12, one or more bypassaisles 132 may run substantially transverse to the picking aisles toallow the bots to move between picking aisles in lieu of traversing thetransfer decks 130B. The bypass aisles 132 may be substantially similarto travel lanes of the transfer decks 130B (as described in, forexample, U.S. patent application Ser. No. 12/757,220, entitled “STORAGEAND RETRIEVAL SYSTEM,”, previously incorporated by reference) and mayallow bidirectional or unidirectional travel of the bots through thebypass aisle. The bypass aisle 132 may provide one or more lanes of bottravel where each lane has a floor and suitable guides for guiding thebot along the bypass aisle. In alternate embodiments, the bypass aislesmay have any suitable configuration for allowing the bots 110 totraverse between the picking aisles 130A. As may also be realized, ifone of the in-feed or out-feed transfer stations 160, 170 or multilevelvertical conveyors 150A, 150B become disabled order fulfillment orreplenishment tasks may be directed by, for example, control server 120,to other ones of the in-feed and out-feed transfer stations 160, 170and/or multilevel vertical conveyors 150A, 150B without substantialdisruption of the storage and retrieval system.

The bot proxy 2680 (FIG. 4A) receives the jobs for a respective bot 110from, for example, the idle bot manager 2652 and takes control of thetask until, for example, a completion of the task or an unrecoverablebot failure. The bot proxy 2680 may be a “stand in” for a respective bot110 on the control server 120 and be configured to, for example, managethe detailed execution of tasks by a respective bot and track the task'sexecution. The bot proxy 2680 may be configured to receive any suitableinformation from, for example, the idle bot manager 2652. In oneexample, a bot proxy owner 2680A may be configured to receive a list ofbots expected to perform respective tasks and any other suitableinformation (e.g. storage structure map, pointers to level managerinterfaces and objects, etc.) for the operation of the bot proxy owner2680A. The bot proxy owner 2680A may pass information to one or more botproxies 2680 for each bot selected to perform a job. The bot proxy 2680may be configured to provide a status of the bot to any suitable entity(e.g. idle bot manager 2652, operator workstations, etc.) of the storageand retrieval system 100. In one example, if the bot proxy 2680determines a bot 110 cannot perform a task assigned to the bot 110, thebot proxy 2680 may be configured to notify the control service 2653 andre-register the bot as idle with the idle bot manager 2652. The botproxy 2680 may communicate with, for example, a traffic manager 2654 andthe reservation manager 2608A to gain access to one or more of thetransfer deck 130B, multilevel vertical conveyor transfer locations2840A, 2840B (e.g. locations within the storage and retrieval systemwhere the bots may be located for interfacing directly with themultilevel vertical conveyors, FIG. 7) and picking aisles 130A. Forexemplary purposes only, the bot proxy 2680 (or any other suitableportion of the control server 120) may be configured to reserve accessto one or more of the picking aisles 130A and transfer deck 130B fortiming the route of the bot 110 so that each bot 110 used to fulfill anorder arrives at a predetermined multilevel vertical conveyor 150 in apredetermined sequence to effect a predetermined arrangement of items onan outbound pallet. Upon completion of a task, the bot proxy 2680registers as idle with the idle bot manager 2652 and indicates anidentification of the task completed by the bot 110. If the task failed,the bot proxy 2680 registers as idle, indicates an identification of thetask and indicates why the task failed.

Referring again to FIG. 4, the order manager 2511 may be configured tosend requests for reservation to one or more multilevel verticalconveyor controllers 2609, which may include multilevel verticalconveyor managers 2609M. Referring also to FIG. 4B it is noted thatreservations as described herein may be organized in a queue 2690 havingfor example, an active slot (e.g. the current job) associated with anactive reserver and queued slots 2692-2694 associated with waitingreservers 2692A-2694A, where a reserver is for example, a bot,multilevel vertical conveyor, a transfer station, or any other suitablecomponent of the storage and retrieval system 100. In alternateembodiments the reservations may be handled in any suitable manner. Forexemplary purposes only, the order manager 2511 and the multilevelvertical conveyor managers 2609M may communicate with the bot proxy 2680for effecting the sequencing of items onto the multilevel verticalconveyors 150. In alternate embodiments, any suitable portion of thecontrol server 120 may allow for the sequencing of items onto themultilevel vertical conveyors. There may be one or more multilevelvertical conveyor managers 2609M associated with each multilevelvertical conveyor 150. In alternate embodiments, there may be one ormore multilevel vertical conveyors 150 associated with each multilevelvertical conveyor managers 2609M. The multilevel vertical conveyormanagers 2609M may be configured to, for example, keep track of theoperation of respective multilevel vertical conveyors 150 and respond torequests for reservations of the multilevel vertical conveyors 150 fortransporting items to and from each level of the storage structure 130.Each multilevel vertical conveyor manager 2609M may be configured tocoordinate with its respective multilevel vertical conveyor(s) 150 inany suitable manner such as by, for example, using synchronized timekept using a network time protocol.

The inventory manager 2512 is configured to receive the replenishmentorders from the warehouse management system. The inventory manager 2512may be configured to access and/or maintain one or more suitabledatabases of the storage system 2400 for tracking inventory and/orissuing or aiding in the issuance of bot tasks. In one example theinventory manager 2512 may be in communication with one or more of anitem master database 2601, an inventory database 2602 and a storage andretrieval system map database 2603 (and any other suitable databases).The item master database 2601 may include a description of the stockkeeping units (SKUs) that are handled by or otherwise located in thestorage and retrieval system 100. The inventory database 2602 mayinclude, for example, the location of each item inventoried in thestorage and retrieval system 100. The storage and retrieval system mapdatabase 2603 may include a substantially complete description of thephysical structure of the storage and retrieval system 100 including,but not limited to, each storage level, aisles, decks, shelves, transferstations, conveyors and any other suitable structures within the storageand retrieval system. In alternate embodiments the storage system 2400may include any suitable databases for providing operational informationto, for example, the order manager 2511 and/or the inventory manager2512. In one exemplary embodiment, the inventory manager 2512 may beconfigured to provide any suitable inventory information to othersuitable components of the storage and retrieval system such as, forexemplary purposes only, the order manager 2511 as described herein toallow the order manager 2511 to reserve items against an order. Thereservation of items substantially prevents more than one bot 110 fromattempting to retrieve the same item from storage. The inventory manager2512 also allows for the assignment and reservation of a pickface forputting away an inbound item such as during replenishment of the storageand retrieval system 100. In one exemplary embodiment, when a storageslot/space becomes available in the storage structure 130, the inventorymanager 1512 may assign a fictitious item (e.g. an empty case) to theempty storage slot. If there are adjacent empty slots in the storagestructure the empty cases of the adjacent storage slots may be combinedto fill the empty space on the storage shelf. As may be realized, thesize of the slots may be variable such as when dynamically allocatingshelf space. For example, referring to FIGS. 6A-6C, instead of placingcase units 5011 and 5012 in predetermined storage areas on the storageshelf 5001, the storage slots may be dynamically allocated such that thecases 5011, 5012 are replaced by three cases having the size of caseunit 5010. For example, FIG. 6A illustrates a storage bay 5000 dividedinto storage slots S1-S4 as is done in conventional storage systems. Thesize of the storage slots S1-S4 may be a fixed size dependent on a sizeof the largest item (e.g. item 5011) to be stored on the shelf 600 ofthe storage bay 5000. As can be seen in FIG. 24A, when items 5010, 5012,5013 of varying dimensions, which are smaller than item 5011, are placedin a respective storage slot S1, S2, S4 a significant portion of thestorage bay capacity, as indicated by the shaded boxes, remains unused.In accordance with an exemplary embodiment, FIG. 6B illustrates astorage bay 5001 having dimensions substantially similar to storage bay5000. In FIG. 6B the items 5010-5016 are placed on the shelf 600 usingdynamic allocation such that the empty storage slots are substantiallycontinuously resized as uncontained case units are placed on the storageshelves (e.g. the storage slots do not have a predetermined size and/orlocation on the storage shelves). As can be seen in FIG. 6B, dynamicallyallocating the storage space allows placement of items 5014-5016 onshelf 600 in addition to items 5010-5013 (which are the same itemsplaced in storage bay 5000 described above) such that the unused storagespace, as indicated by the hatched boxes, is less than the unusedstorage space using the fixed slots of FIG. 6A. FIG. 6C illustrates aside by side comparison of the unused storage space for the fixed slotsand dynamic allocation storage described above. It is noted that theunused storage space of bay 5001 using dynamic allocation may bedecreased even further by decreasing the amount of space between theitems 5010-5016 which may allow for placement of additional items on theshelf 600. As may be realized, as items are placed within the storagestructure the open storage spaces may be analyzed, by for example thecontrol server 120, after each item placement and dynamicallyre-allocated according to a changed size of the open storage space sothat additional items having a size corresponding to (or less than) asize of the re-allocated storage space may be placed in the re-allocatedstorage space. In alternate embodiments, the storage slots may also beallocated so that items that are frequently picked together are locatednext to each other. When a predetermined pickface is reserved for anitem that is being delivered, at least a portion of the empty casesitting in the location where the item is to be placed is replaced by afictitious item having the features (e.g. size, etc.) of the item beingdelivered to prevent other inbound items from being assigned to thepredetermined pickface. If the item is smaller than the empty case thatit is replacing the empty case may be resized or replaced with a smallerempty case to fill the unused portion of the storage shelf. Another itemmay then be placed within the storage slot corresponding to the resizedsmaller empty case and so on.

In this example, the control server 120 includes an executive module2606, which may be configured to provide an interface between, forexample, the control server 120 and an operator. The executive module2606 may allow monitoring and/or control of the storage and retrievalsystem operations in any suitable manner such as, for example, throughone or more user interface terminals 2410. The executive module 2606 maybe configured to provide any suitable reports and allow operator accessto an aisle maintenance manager 2607. The aisle maintenance manager 2607may be configured to allow personnel access into any suitable portion ofthe storage and retrieval system such that interaction between thepersonnel and moving components of the storage and retrieval system issubstantially eliminated. For example, when it is determined by theexecutive module 2606 that personnel are accessing a predeterminedportion of the storage and retrieval system 100 the executive module2606 may automatically effect a “lock out” or disabling of allmechanized elements (e.g. bots, conveyors, etc.) within thepredetermined portion of the storage and retrieval system being accessedby the personnel. In alternate embodiments, the operator may manuallyeffect the lock out of the predetermined area being accessed by thepersonnel.

Referring again to FIGS. 2, 3 and 5 an exemplary pallet order entry andreplenishment process will be described. A portion of, for example, apredetermined time period's (e.g. hour, day, week, or other suitabletime period) pallet orders are submitted to the order manager 2511. Theorder manager records the orders into, for example, an order database2511B and forwards the information to an inventory planner module 2512B(which may be a subsystem of the inventory manager 2512). It is notedthat the inventory planner 2512B may be configured to generate aschedule of replenishment orders based on the pallet orders that willmaintain a sufficient quantity and composition of picking stock to, forexample, substantially prevent an unavailability of items throughout theorder fulfillment process for the predetermined time period and toprepare the storage and retrieval system for, for example, the start ofthe next predetermined order fulfillment time period. In one exemplaryembodiment, the inventory planner 2512B may be configured to sort theorders by time and using, for example, a current inventory as abeginning balance, the inventory planner 2512B may compute an inventorylevel that would result at the end of each predetermined orderfulfillment time period. Based on, for example, per-SKU preorderthresholds, per-SKU economic order quantity, target end of predeterminedtime period balances, and an inventory calculated after each order, theinventory planner 2512B computes a schedule of planned replenishmentorders and submits the replenishment orders to the warehouse managementsystem 2500. As new pallet orders are submitted to the order manager2511, the above computations are repeated, which may result in amodification of the replenishment orders. In alternate embodiments theinventory storage and retrieval system 100 may be maintained in anysuitable manner.

Referring also to FIG. 7, as each order is fulfilled, bots 110 for theirrespective storage levels 2801, 2802 deliver the picked items to, forexample, outbound multilevel vertical conveyor 150B in a predeterminedsequence as described above. In alternate embodiments the bots 110 maydeliver the picked items to output transfer stations for indirectlyinterfacing with the multilevel vertical conveyors. The bots 110transfer the items to the multilevel vertical conveyor for transport toone or more out-feed transfer stations 2860A, 2860B. The out-feedtransfer stations 2860A, 2860B may be substantially similar to out-feedtransfer stations 160 described above with respect to, for exampleFIG. 1. The items are transported from out-feed transfer stations 2860A,2860B to a respective one of the palletizing stations 2820A, 2820B byone or more suitable conveyors. In this example, there are twoaccumulation conveyors feeding each palletizing station 2820A, 2820B. Inalternate embodiments there may be more or less than two conveyorsfeeding each palletizing station 2820A, 2820B. Each set of accumulationconveyors 2870, 2871 may be managed by, for example, the order manager2511 or any other suitable subsystem of the control server 120 forproviding a buffer system to each of the respective palletizing stations2820A, 2820B. For example, out-feed transfer station 2860A can befilling conveyor 1 of the set of conveyors 2870 while the palletizingstation 2820A is emptying conveyor 2 of the set of conveyors 2870 sothat the rate of transferring items to the out-feed stations does nothave to be matched to the rate at which the palletizing station 2820Aplaces the items on a pallet. In alternate embodiments, any suitablebuffer system may be provided for supplying items to the palletizingstations 2820A, 2820B. In still other alternate embodiments, the ratesof supplying items to the out-feed stations 2860A, 2860B may be matchedto the rates at which items are palletized by the palletizing stations2820A, 2820B.

In one exemplary embodiment, the above-described exemplary orderfulfillment process may be processed by the order manager 2511 in, forexample, any suitable number of phases. For exemplary purposes only, inthis exemplary embodiment the order manager 2511 may process the palletorder in a transaction planning phase and a transaction execution phase.In the transaction planning phase the order manager 2511 may reserve themultilevel vertical conveyor and pickface resources for delivering apredetermined number of items of each ordered SKU to the palletizingstation in a predetermined sequence. The order manager 2511 may generatea series of pick transactions that will fulfill the pallet order. Thetransaction planning phase may be performed for an entire pallet order,as a batch, before the first pick transaction is released for execution.In alternate embodiments the pick transactions may be generated andexecuted in any suitable manner.

The pick transactions may be generated by the order manager 2511 in anysuitable manner. In one exemplary embodiment, the pick transactions maybe generated by choosing a multilevel vertical conveyor, choosingmultilevel vertical conveyor transfer locations 2840A, 2840B (FIG. 7)(e.g. a location where the bot(s) interface with a respective multilevelvertical conveyor)/storage level and choosing a pickface. In oneexemplary embodiment, the next unreserved shelf 730 on an outboundmultilevel vertical conveyor 150B that feeds a designated palletizingstation 2820A, 2820B is reserved for picked items. In alternateembodiments, any suitable shelf 730 of any suitable outbound multilevelvertical conveyor may be reserved in any suitable manner.

The multilevel vertical conveyor transfer locations/storage level ischosen such that multilevel vertical conveyor transfer locations 2840A,2840B is located on a level including a pickface for the SKU. To beselected, the multilevel vertical conveyor transfer locations 2840A,2840B must not be scheduled as busy (e.g. have another bot located inthat station) at the time the target multilevel vertical conveyorplatform or shelf 730 arrives, and the target shelf 730 must not bescheduled to arrive at the output transfer station for at least Xseconds, where X is the time in seconds that is estimated as requiredfor a bot 110 to pick the ordered item(s) and travel to the multilevelvertical conveyor transfer locations 2840A, 2840B. In alternateembodiments, where there is no output transfer station that satisfiesthe above criteria on a storage level including the pickface for theSKU, the target multilevel vertical conveyor shelf 730 is left empty andthe next platform is reserved in its place. The multilevel verticalconveyor transfer location 2840A, 2840B selection process may berepeated until at least one candidate output transfer station meets thecriteria.

The order manager 2511 may request from, for example, the inventorydatabase 2602 a list of all available pickfaces for the specified SKUalong with, for example, their attributes such as number of cases,locations, induction and expiration dates. In alternate embodiments theorder manager 2511 may request any suitable information regarding theitems being picked. The order manager 2511 may request from theassociated multilevel vertical conveyor manager 2609M the availabilityof multilevel vertical conveyor transfer locations 2840A, 2840B thatprovide access for the bot(s) 110 to interface directly with themultilevel vertical conveyor(s) 150B for feeding the designatedpalletizing station 2820A, 2820B. The order manager 2511 may determinewhich multilevel vertical conveyor transfer locations 2840A, 2840B areeligible for the pick transaction according to the above-noted criteria,and select the highest ranked candidate from the eligible multilevelvertical conveyor transfer locations 2840A, 2840B based on, for example,one or more of the following factors:

(a) Scarcity of levels on which the SKU for the items to be picked arelocated. For example, if the SKU for a particular order line exists onmore than P (plentiful) number of levels, then order manager 2511 looksahead N order lines. If an order line within these N order lines is fora SKU that exists on fewer than S (scarce) number of levels, then theoutput transfer station/level receives a negative ranking for thisfactor, reducing the likelihood that it will be used for the currentorder line and thereby potentially block use of this level for a scarceSKU. It is noted that P is a value that indicates that a SKU exists on a“plentiful” number of levels, S is a value that indicates that a SKUexists on a “scarce” number of levels and N is a value that specifiesthe number of multilevel vertical platforms that will be inaccessible bythe output transfer station after it makes a transfer.

(b) Bot utilization for a given storage level 2801, 2802. For example,the lower the bot utilization is on a given level, the higher theranking for the transfer station/level. This ranking factor may provideload-balancing for evenly distributing the load of picking tasksthroughout the storage structure 130.

(c) Opportunity for pick-down. For example, if there is an opportunityto pick-down a pickface, where picking from that pickface causes thepickface to become empty, it is given a higher ranking.

(d) Pickface abundance. For example, the greater the number of pickfaceson a given level, the higher the ranking that the level will receive.

(e) Maximum delivery window. For example, the delivery window for anygiven multilevel vertical conveyor transfer locations 2840A, 2840B maybe the difference between the arrival time of the target multilevelvertical conveyor shelf 730 at the multilevel vertical conveyor transferlocations 2840A, 2840B and the time of departure of the last bot 110 todrop off at the multilevel vertical conveyor transfer locations 2840A,2840B. The larger this time window the less likely it is that a delay inbot 110 travel will result in a delivery that misses the window.

(f) Expiration dates. For example, if the SKU requires attention toexpiration dates, levels with pickfaces having earlier expiration dateswill be given higher scores than those with later expiration dates. Inone exemplary embodiment, the weighting of this factor may be inverselyproportional to the number of days remaining before expiration, so thatit can override certain other criteria if necessary to avoid shippingmerchandise too close to its expiration.

(g) Minimum picks for an order line. For example, if an order linecannot be filled by a single pick, it must be broken into multiple picksrequiring more than one multilevel vertical conveyor shelf 730 andmultiple bots 110. Output transfer stations on levels containing asingle pickface that would completely fill the order line are givenpriority over levels that would require splitting an order line intomultiple picks.

This ranking algorithm produces a value for each factor (the higher thevalue the more desirable the candidate transfer station for thetransaction), and the values for all the factors are then weighted andsummed to form a total score for each output transfer station/level. Theorder manager 2511 selects the output transfer station/level with thehighest total score and places a reservation with the multilevelvertical conveyor manager 2609M for that output station for thetransaction. It is noted that in alternate embodiments the order manager2511 may determine which multilevel vertical conveyor transfer locations2840A, 2840B are eligible for the pick transaction in any suitablemanner.

In one exemplary embodiment, choosing the pickface may include a rankingsystem that may prioritize the pickfaces based on predetermined factors.In alternate embodiments, the pickface may be chosen in any suitablemanner. For exemplary purposes only, the factors used in choosing thepickface may include:

(a) Pickfaces on the selected level that would pick-down withoutdepleting all the pickfaces for this SKU on the level are scored higher.

(b) Pickfaces that minimize the number of picks for the Order Line arerated higher.

(c) Pickfaces with earlier expiration dates, if applicable, or earlierinduction dates otherwise, will be given higher priority over those withlater expiration or induction dates.

(d) Pickfaces located in aisles where no potentially conflicting picksare planned will be given higher priority over pickfaces in aisles wheresuch conflicts might cause bot delays. It is noted that in one exemplaryembodiment, once a pickface is selected for a pick transaction, theestimated pick-time is recorded for use in this ranking parameter.

Once the pickface has been selected, a reservation for these items isplaced with the inventory manager.

The above procedure for transaction planning may generate at least onepick transaction for each order line specifying one or more of thenumber of cases to be picked, the pickface from which they are to bepicked, an output transfer station to which they are to be delivered,the MVC platform on which they are to be placed, and the deliverytime-window within which a bot can safely deliver the cases. The atleast one pick transaction may be stored in any suitable location, suchas in a transaction record in, for example, the storage system 2400.

It is noted that some order lines within the pallet order may not beable to be fulfilled by a single pick transaction, either because theordered quantity of items is greater than the maximum number of itemsper pickface for that SKU, or because it is necessary or advantageousfor some other reason to pick from two or more partially-full pickfaces.In this event, successive pick transactions are created using the abovenoted transaction planning procedure until either the order line issatisfied or an out-of-stock condition occurs.

The execution of each transaction, as determined above, generallyincludes transferring an item(s) from a pickface to a multilevelvertical conveyor transfer locations 2840A, 2840B with a bot 110,transferring the item(s) from the bot 110 located at the multilevelvertical conveyor transfer locations 2840A, 2840B to one or moreout-feed transfer stations 2860A, 2860B with the multilevel verticalconveyor and from the out-feed transfer stations 2860A, 2860B torespective palletizing stations 2820A, 2820B with the accumulationconveyors 2870, 2871 where all or part of the item is transferred to anoutbound container. It is noted that when bots 110 are at multilevelvertical conveyor transfer locations 2840A, 2840B, the item(s) thebot(s) 110 wait for the predetermined multilevel vertical conveyor shelf730 to arrive for transferring the item(s) onto the shelf 730. As notedabove, management of these bot activities may be performed by one ormore level managers 2806. In alternate embodiments, the bots may bemanaged in any suitable manner by any suitable component of the storageand retrieval system 100.

In one exemplary embodiment, there may be a separate level manager 2806for each level within the structure. Each level manager 2806 may beconfigured to manage all bot activities on a respective level for theperformance of pick and put-away tasks. In one exemplary embodiment, thelevel manager may be configured to control the bots and communicatewith, for example, the order manager 2511, multilevel vertical conveyormanagers 2609M and/or bot proxy 2680 to effect the sequenced delivery ofitems to the multilevel vertical conveyors. In alternate embodiments thelevel manager 2806 may be configured to effect the sequenced delivery ofitems to the multilevel vertical conveyors in any suitable manner. Theorder manager 2511 may distribute each pick transaction for the palletorder to the appropriate level manager 2608 for the level designated in,for example, the transaction record and awaits notice from the levelmanager 2608 of completion of transferring the item(s) to the multilevelvertical conveyor transfer locations 2840A, 2840B.

For each pick transaction, the level manager 2608 may provide deliveryof the predetermined items (as indicated in the picking order) by thebot(s) 110 to the predetermined multilevel vertical conveyor transferlocations 2840A, 2840B within a predetermined delivery window so thatthe items are sequenced for pallet building at a correspondingpalletizing workstation 2820A, 2820B. The level manager 2608 may assigna bot 110 to perform the task, determine the timing for launching thebot 110 on this task, and instruct a bot proxy 2680 (FIG. 4A) to managethe actual movement of the designated bot. It is noted that the botproxy 2680 may manage the bot's travel by creating a travel route,reserving resources and clearing the bot onto the transfer deck. The botproxy 2680 may be resident in, for exemplary purposes only, a levelmanager 2608 (FIG. 4A) as described above. In alternate embodiments thebot proxy may be located at any other location of the storage andretrieval system 100. When the bot 110 removes the specified number ofitems from the predetermined pickface(s), the level manager 2608 maysend a message to the inventory manager 2512 to update the status of thepicked items from “reserved” to “picked”. If the picked items are thelast remaining items in the predetermined pickface, then their removaleither creates a new storage slot or enlarges at least one adjacent slotsuch that the inventory manager 2512 updates a storage slot database2910 (FIG. 8) accordingly to, at least in part, facilitate the dynamicallocation of the storage space.

The bot 110 may be configured to notify the level manager 2608 that ithas arrived at a multilevel vertical conveyor transfer locations 2840A,2840B. The level manager 2608 may confirm with, for example, themultilevel vertical conveyor manager 2609M that the multilevel verticalconveyor 150B is on time and that the predetermined shelf 730 is empty.The level manager 2608 may instruct the bot 110 to place its load (e.g.the picked items) onto the predetermined multilevel vertical conveyorshelf 730 (FIG. 7) which has been previously reserved as describedabove. The transfer of items from the bot 110 to the multilevel verticalconveyor 150B may be a direct transfer or in alternate embodiments itmay occur indirectly through an intermediate transfer arm (as describedin U.S. patent application Ser. Nos. 12/757,312 and 12/757,354,previously incorporated by reference). The bot 110 may be configured toinform the level manager 2608 that the items have been transferred tothe multilevel vertical conveyor 150B. The level manager 2608 may informthe order manager 2511 that this stage of the pick transaction has beencompleted. The multilevel vertical conveyor 150B carries the items overto an out-feed transfer station 2860A, 2860B (FIG. 7). In alternateembodiments, the transfer of items to the multilevel vertical conveyormay occur in any suitable manner. In still other alternate embodiments,the order manager 2511 may be informed of the transfer of the item(s) tothe multilevel vertical conveyor in any suitable manner. It is notedthat in one exemplary embodiment, if the bot 110 fails to arrive at themultilevel vertical conveyor transfer locations 2840A, 2840B on time, orif the multilevel vertical conveyor managers 2609M inform the levelmanager 2608 that the multilevel vertical conveyor 150B is not onschedule or that the designated shelf 730 is not empty, the levelmanager 2608 may be configured to inform the order manager 2511 of thesame. The order manager 2511 may be configured to revise the deliveryplan for the pallet order and send one or more messages to the levelmanager 2608 informing the level manager 2608 of the revised pickingschedule. The level manager 2608 may be configured to revise the taskplans depending on the message(s) and inform the bots 110 of the revisedpicking schedule. In alternate embodiments, the picking schedule may berevised in any suitable manner if there is a delay in transferring itemsto the multilevel vertical conveyor 150B.

The multilevel vertical conveyor manager 2609M may be configured to senda message to the out-feed transfer station 2860A, 2860B that servicesthe predetermined palletizing station 2820A, 2820B instructing theout-feed transfer station 2860A, 2860B to extract the item(s) from thepredetermined multilevel vertical conveyor shelf and place the item(s)onto the respective accumulator conveyor(s) 2870, 2871 feeding thepalletizing station 2820A, 2820B. The out-feed transfer station 2860A,2860B may be configured to send a message to the multilevel verticalconveyor manager 2609M that the item(s) has been removed from themultilevel vertical conveyor 150B indicating completion of the picktransaction. Once all of the pick transactions for a given pallet orderhave been completed in a manner substantially similar to that describedabove, order Execution is complete for the pallet order.

Referring now to FIGS. 4, 8 and 9 an exemplary inventory replenishmentwill be described in accordance with an exemplary embodiment. In thisexample, the inventory manager 2512 may be configured to submit aschedule of requested replenishment orders to the warehouse managementsystem 2500. The replenishment orders may be generated based on theinventory removed from the storage and retrieval system 100 during theabove-noted picking process. In accordance with the replenishmentorders, the warehouse management system 2500 may be configured to stagethe replenishment orders for the storage and retrieval system 100substantially at predetermined replenish times indicated by theinventory manager 2512. In alternate embodiments, the replenishmentorders may be staged in any suitable manner by any suitable warehouseentity. The warehouse management system 2500 may be configured to send areplenishment order ready message to, for example, the order manager2511 close to or substantially at the predetermined replenish times. Inalternate embodiments, the order manager 2511 may be alerted to start areplenishment order in any suitable manner. In one exemplary embodiment,the replenishment order ready message may be received by a replenishmentorder executor 2511K of the order manager 2511. In another exemplaryembodiment, the replenishment order ready message may be received by theinventory manager 2512 through, for example, communications with theorder manager 2511. In alternate embodiments the inventory manager 2512may receive the replenishment order ready message directly from thewarehouse management system 2500. In one exemplary embodiment, thereplenishment order ready message may indicate that a pallet of itemshas been staged at, for example, depalletizing station 200 and that thedepalletizer is ready for transferring the items into the storage andretrieval system. The replenishment order ready message may also includeany suitable information pertaining to the items being staged forreplenishment into the storage and retrieval system 100. For exemplarypurposes only, in one exemplary embodiment the replenishment order readymessage may include the SKU, quantity of items to be depalletized and adepalletizing station identification. The inventory manager 2512 may beconfigured to validate the information supplied in the replenishmentorder ready message and may verify that the in-feed transfer station 170corresponding to the identified depalletizing station is available. Theinventory manager 2512 may be configured to send a message to thewarehouse management system 2500 if, upon validation, it is determinedthat the SKU being replenished is different than the SKU specified inthe replenishment order, that there are too many or too few items beingreplenished, that the replenishment is being staged earlier or beyond anexpected replenishment time specified in the replenishment order, thatthere is no space available in the storage structure 130, or that thereare no resources available (e.g. the in-feed transfer station 210 and/orthe multilevel vertical conveyor 150A is not available). In alternateembodiments, a message may be sent to the warehouse management system2500 upon finding any suitable discrepancy between the items beingstaged and the item requested in the replenishment order. In the absenceof any discrepancies, the inventory manager 2512 may send a prepare toreplenish message to the warehouse management system 2500 indicatingreplenishment is to begin.

In accordance with the exemplary embodiments, the execution of areplenishment order may be substantially similar to the pallet orderdescribed above unless otherwise noted. It is noted however, that theflow of items (e.g. inflow of items) for the replenishment order issubstantially opposite that of the pallet order (e.g. outflow of items).In one exemplary embodiment, there may be mixed SKUs on a pallet for areplenishment order. In another exemplary embodiment the pallet mayinclude items having the same SKU. In yet another exemplary embodiment,the items in a replenishment order may be offloaded from the pallet inany suitable manner. For example, in one exemplary embodiment, the itemsmay be offloaded in no particular order while in alternate embodimentsthe items may be offloaded in a particular sequence.

In a manner similar to that described above for the pallet order, theinventory manager 2512 may process the replenishment order in one ormore phases. For exemplary purposes only, in one exemplary embodiment,the inventory manager 2512 may process the replenishment order in atransaction planning phase and a transaction execution phase.Transaction planning may include, for example, reserving storage slotson shelves 600 for the replenishment items, reserving inbound multilevelvertical conveyor resources for transferring the replenishment items toa predetermined storage structure level and generating one or more putaway transactions for transferring the replenishment items to thestorage shelves 600. In one exemplary embodiment, the transactionplanning may be performed for the entire replenishment order, as abatch, before the first put away transaction is released for execution.In alternate embodiments, at least a portion of the transaction planningand transaction execution may occur simultaneously.

The number of planned transactions in a replenishment order may becalculated in any suitable manner by, for example, any suitablesubsystem of the control server 120 such as the inventory manager 2512.In one exemplary embodiment, the number of transactions may becalculated by dividing the number of items to be depalletized by astandard (e.g. maximum) number of items per pickface for the specifiedSKU. The standard number of items per pickface may depend on theSKU-specific item dimensions, which determines how many items can fitdepth-wise on the storage shelves 600. This division will produce thenumber of transactions with full pickfaces, plus, if there is aremainder, one additional transaction with the remainder number of casesin a less-than-full pickface.

For each planned transaction in a replenishment order, the inventorymanager 2512 may submit a batch request to reserve storage slots for allof the pickfaces to be created by put-away transactions involved in thereplenishment order. Based on the SKU's dimensions, the inventorymanager first determines which levels can store the incoming items(e.g., levels for which the maximum allowable item height is greaterthan or substantially equal to the SKU's height). The inventory manager2512 may obtain, from an available slots database located in, forexample, the storage system 2400, a list of the available storage slotson eligible storage levels, along with the attributes for each slot suchas slot length and location. The inventory manager 2512 may select andreserve one or more storage slots from the list of available slots toassign to the pickfaces that are created from the replenishment order.The allocation of shelf space (slots) to the storage of items(pickfaces), such as the dynamic allocation described above with respectto FIGS. 6A-6C, may provide one or more of spatial diversity of pickfacelocations, storage capacity utilization and optimized bot pickingthroughput. As described above, the size, number and location of thestorage slots is variable (e.g. dynamically allocatable). For example,the spatial diversity may maximize the dispersion of pickfaces of agiven SKU throughout the structure, both vertically in order to minimizescheduling conflicts at multilevel vertical conveyor transfer locations2840A, 2840B (FIG. 7) on picking transactions, and horizontally in orderto preserve pickface availability in the presence of exceptions (e.g.maintenance, closures, etc.) that prevent access to certain pickinglanes. The storage capacity utilization may maximize storage density,i.e. the number of cases that can be stored within the pickingstructure, by minimizing wasted shelf-space as described above (FIGS.6A-6C). Optimization of bot picking throughput may minimize bot traveltime when executing picking tasks by storing faster moving SKUs closerto the transfer decks than slower moving SKUs.

The inventory manager 2512 may allocate storage slots to pickfaces byscoring each candidate storage slot on one or more of the followingfactors:

(a) Vertical dispersion—For a given slot, the smaller the number ofexisting pickfaces for the specified SKU on the same level (any aisle),the higher the score for this factor;

(b) Horizontal dispersion—A given slot receives a much higher score onthis factor if there are fewer pickfaces for the specified SKU on thesame aisle (at any level), than if there are many pickfaces on the sameaisle at any level;

(c) Space utilization—For a given slot, the smaller the amount ofavailable shelf area that will be wasted as a result of using the slotto store one of the planned pickfaces, the higher the score for thisfactor; and

(d) Bot travel time—The distance of a slot from the nearest transferdeck is used to calculate a score that is inversely proportional to SKUvelocity of movement. That is, the nearer the slot is to the transferdeck, the higher its score for a fast-moving SKU and the lower its scorefor slow-movers. Conversely, the farther the slot is from the transferdeck, the higher its score for a slow-moving SKU and the lower its scorefor fast-movers.

Allocation of the storage slots based on one or more of the abovefactors produces a value for each factor (the higher the value the moredesirable the candidate shelf/slot for the transaction), and the valuesfor all the factors are then weighted and summed to form a total scorefor each slot that is a candidate for use in storing a pickface in thereplenishment order. The inventory manager 2512 may sort the scores toproduce a relative ranking of the slots for selecting the requirednumber of slots with the highest total scores and assigning each slot toa specific pickface. In alternate embodiments the allocation of storageslots may be performed in any suitable manner by any suitablesubsystem(s) of, for example, the control server 120.

The inventory manager 2512, or any other suitable subsystem of thecontrol server 120 may determine the relative sequence in which theitems are to be delivered by a respective multilevel vertical conveyor150A to respective levels of the storage structure 130. The inventorymanager 2512 may maximize the time intervals between successivetransactions at each respective in-feed transfer station 170 so that thebot 110 pick-up window for each item is maximized. It is noted that thein-feed transfer stations 170 fed by a given multilevel verticalconveyor 150A are always dedicated to a single replenishment order suchthat particular sequencing of items to the conveyors 150A is not needed.

The replenishment order process may generate a set of replenishmenttransactions, each transaction corresponding to a respective pickface,where the transactions indicate a unique pickface identificationassigned by the inventory manager 2512 as part of the dynamic slotallocation process; the number of items that are to form the pickfaceand a corresponding set of unique item identifications, each of which isto be assigned to one of the items; the slot identification, location(e.g. level, aisle, shelf number, and reference slat number), anddimensions (e.g. length and depth); and the planned execution sequencenumber of the transaction. In alternate embodiments, the replenishmenttransactions may include any suitable information for identifying theitems and the locations in which the items are to be stored.

The inventory manager 2512 (or other suitable subsystem of the controlserver 120) may be configured to perform the transaction execution inany suitable manner. It is noted that resource reservations, such as forthe multilevel vertical conveyor shelves 730 and/or the in-feed transferstations 170, may not be needed for transaction execution because eachmultilevel vertical conveyor 150A may be dedicated to servicing, forexample, a single depalletizing station. In alternate embodiments, themultilevel vertical conveyors may serve more than one depalletizingstation such that, for example, the inventory manager reserves systemresources in a manner substantially similar to that described above forthe fulfillment of pallet orders.

In one exemplary embodiment, one or more inspection stations 3010 may belocated along the conveyor transferring items from the depalletizingstation 210 to the in-feed transfer station 170. The inspection stations3010 may be configured to receive inspection parameters including, butnot limited to, predetermined item attributes (e.g. item dimensions,weight, SKUs, etc.). The inspection stations 3010 may be configured tosense, for example, the item attributes (e.g. size of the items, etc.)in any suitable manner as each item passes along the conveyor andcompare them to the predetermined item attributes for a given SKU. Theinspection station 3010 diverts items (e.g. rejected items) that do notmeet the inspection parameters to a run-off area for manual inspectionand resolution. The inspection station 3010 may be in communication withthe control server 120 so the control server is informed of any rejecteditems. The inventory manager 2512 of the control server 120 in turn maynotify the warehouse management system 2500 of any rejected items,reduce the number of items expected to be replenished in the storage andretrieval system 100, and modify the replenishment transaction toaccount for the rejected item(s).

In one example, where a rejected item is determined to satisfy a pickorder to a predetermined SKU, but has different dimensions than thosespecified for the SKU, the inventory manager 2512, for example, mayrecord the new dimensions for that particular item. The rejected itemmay be released back into the storage and retrieval system and thereplenishment transactions may be updated accordingly to account for thenewly determined case dimensions.

The inspection station 3010 may be configured to notify, for example,the inventory manager 2512 of each item that passes inspection as theitems are transported to the in-feed transfer stations 170. Theinventory manager 2512 assigns a unique identification number to each ofthe items, which is used to track the respective item within the storageand retrieval system.

The items are transferred from the in-feed transfer stations 170 to abot 110 of a respective predetermined level 3000 of the storagestructure 130 in a manner substantially opposite to that described abovewith respect to the pallet orders. The items may also be transferred tothe respective predetermined storage location by the bots 110 in amanner substantially opposite to that described above with respect tothe pallet orders.

Referring to FIGS. 1, 4 and 10-12 bot traffic management for bot 110movement through, for example, the transfer deck 130B, picking aisles130A and at the multilevel vertical conveyor transfer locations 2840A,2840B (FIG. 7—where the bots 110 interface with the multilevel verticalconveyors) will be described. In one exemplary embodiment, the bottraffic may be managed on each storage level by, for example, arespective one of the level managers 2608 and/or bot proxies 2680 (FIG.4A). In alternate embodiments the bot traffic may be managed in anysuitable manner by any suitable components of the storage and retrievalsystem 100. Each of the level managers 2608 may include a reservationmanager 2608A that is configured to reserve picking aisles 130A and/ormultilevel vertical conveyor transfer locations 2840A, 2840B (or anyother suitable resource available to the bot 110). Each of the levelmanagers 2608 may also include a traffic controller 2608B. Any bot tasksthat call for the bot 110 traversing, for example, the transfer deck130B (or other suitable location) of a respective level are cleared forexecution by the traffic controller 2608B. The bots 110 are configuredto move autonomously on, for example, the transfer deck 130B such that apredetermined speed and separation distance from other bots 110 on thetransfer deck 130B are maintained.

In operation, when a bot 110 is to enter a picking aisle 130A, the botacquires a reservation for the picking aisle 130A. In one exemplaryembodiment, a reservation for a picking aisle by one bot 110 (e.g. thereserving bot) may exclude other bots from operating in that pickingaisle during the time reserving bot is traversing the reserved aisle. Inanother exemplary embodiment, multiple bots 110 may be allowed toreserve at least a portion of the same aisle so that multiple botsoperate within the same aisle simultaneously. Reservations for bottravel in aisles of the multilevel vertical conveyor transfer locations2840A, 2840B (FIG. 7) for interfacing with the multilevel verticalconveyors may be substantially similar to those for the picking aisles130A. It is noted that the reservations may be granted based on a timean item to be picked is due at, for example, a respective multilevelvertical conveyor such that bots picking items with an earlier deliverytime are given priority when reservations are granted.

In accordance with an exemplary embodiment, conflicts betweenreservations are substantially avoided in any suitable manner. Forexemplary purposes only, bot traffic and corresponding reservations maybe managed on a level by level basis so that operations on one level donot interfere with operations on another different level of the storagestructure 130. Travel time on the transfer deck 130B by bots 110 may berestricted to a predetermined time period (e.g. the time it takes thebot to travel from an entrance point to the reserved exit point) toavoid excess travel and congestion of the transfer deck 130B. Conflictsbetween reservations for transfer station aisles (such as in multilevelvertical conveyor transfer locations 2840A, 2840B in FIG. 7) and pickingaisles 130A may be substantially avoided by having a greater number ofpicking aisles 130A and multilevel vertical conveyor transfer locations2840A, 2840B aisles on a level than a number of bots 110 on that level.Bots that cannot reserve a desired aisle may be provided with adifferent picking or replenishing job where if there are no other jobsavailable the bot may be sent to a vacant aisle so that it does notoccupy an aisle reserved by another different bot or the transfer deck130B.

Travel by bots 110 on the transfer deck may be organized so that bots110 substantially do not enter a transfer deck 130B without having areservation for a picking or transfer aisle where the bot 110 will exitthe deck (e.g. so bots do not get trapped on the transfer deck withoutan exit point). Travel on the transfer deck may also be organized sothat bots travel in the same direction while on the transfer deck 130Bin a manner substantially similar to that of a revolving door. Forexample, the bots 110 traversing each segment of the transfer deck 130Btravel around that segment at a predetermined speed and once a bot hasan exit reservation the bot is assigned the next available correspondingsegment of the transfer deck 130B for fulfilling that exit reservation.

In accordance with an exemplary embodiment, after a bot 110 picks anitem(s) from a storage shelf 600, the bot 110 travels to the end of thepicking aisle 130A and waits for clearance to enter the transfer deck130B. The bot 110 may send a message to, for example the control server120 requesting access to the transfer deck 130B. The control server 120,may be configured to track the location of the bots 110 on eachrespective level, through for example, wireless communications from thebots 110 as the bots 110 track their respective locations as describedin, for example, U.S. patent application Ser. No. 12/757,312, previouslyincorporated by reference. The bots 110 location may be, for examplecontinuously updated in any suitable database, such as for example, themapping database 2603. In alternate embodiments, the position of eachbot 110 may be tracked and recorded in any suitable manner. The controlserver 120 may use the bot location to determine a time slot forallowing the bot 110 to enter the transfer deck 130B while allowing thebots 110 previously traveling on the transfer deck 110 to operate at apredetermined speed without substantial slowing. The control server 120may send a message to the bot 110 indicating the time slot for enteringthe transfer deck 130B.

As seen in FIGS. 11A and 11B, bots 110 entering the transfer deck 130Bestablish any suitable communications with one or more other bots 110traveling on the transfer deck 130B. For example, bot 3210 may betravelling in front of bot 3200 on the transfer deck 130B. Acommunications link 3250 may be established between bots 3210, 3200 sothat as the bots travel along the transfer deck 130B, bot 3210substantially continuously sends, for example, its current position,speed, acceleration (or deceleration) and/or any other suitableinformation to the bot traveling behind it (e.g. bot 3200). Bot 3200 mayuse the information received from bot 3210 to adjust the speed of bot3200 so that, for example, a predetermined travel distance is maintainedbetween the bots 3210, 3200. A third bot, bot 3220 may be waiting toenter the transfer deck 130B in a predetermined time slot as describedabove. In this example, the bot 3220 enters the transfer deck 130Bbetween bots 3200, 3210. Upon entering the transfer deck 130B, bot 3220establishes communications with the bot 3200 directly behind it. Thebots 3210, 3200 alter their communications so account for the entranceof bot 3220 onto the transfer deck 130B. In one example, when grantingaccess to bot 3220 for entering the transfer deck 130B, the controlserver 120 may send messages to the bots 3210, 3200 already travellingon the transfer deck 130B that are affected by the entrance of bot 3220for assigning the bots 3210, 3200 new communication endpoints (e.g. amessage to bot 3210 to disconnect from bot 3200 and connect to bot3220). In alternate embodiments, bot to bot communication may beperformed in any suitable manner for allowing the bots to travel witheach other on the transfer deck 130B.

FIG. 12 is another example illustrating two bots 3301, 3302 in pickingaisles 3310, 3311 requesting access to the transfer deck 130B, two bots3303, 3305 travelling around the transfer deck 130B and one bot 3304 ontransfer aisle 3320 waiting to enter the transfer deck 130B. In thisexample, bot 3302 has performed a pick and is waiting to enter thetransfer deck 130B. Bot 3301 is about to perform a pick, after which itwill got to point G and wait to enter the transfer deck 130B. Thecontrol server 120 may allow bot 3302 to enter the transfer deck 130Bbefore bot 3301 because, for example, bot 3305 may be to close to bot3301 to allow bot 3301 to enter the transfer deck 130B withoutdisrupting the flow of bots already on the transfer deck. The controlserver 120 may allow bot 3301 to enter the transfer deck after bot 3305passes position G. Similarly the control server 120 may allow bot 3304to enter the transfer deck 130B behind bot 3305. It is noted that thecontrol server 120 may be configured for simultaneous communication witheach bot 3301-3305 to allow bots to substantially simultaneously enterand exit the transfer deck 130B. In alternate embodiments, the controlserver may be configured to communicate with each bot in a sequentialmanner. For example, the control server 120 may communicate with eachbot in an order in which communications from the bots 3301-3305 arereceived by the control server 120.

In one exemplary embodiment the control server 120 may include a storageand retrieval system emulator 100A (FIG. 4). In one exemplaryembodiment, the system emulator 100A may be accessed through, forexample, a user interface terminal 2410 for any suitable purpose. Inanother exemplary embodiment, the system emulator 100A may be used bythe control server 120 to, for exemplary purposes only, plan for theexecution of any suitable stage of the order fulfillment/replenishmentprocesses described herein. The system emulator 100A may be configuredto emulate the operations of any suitable component or combination ofcomponents (e.g. bots, multilevel vertical conveyor, bot transferstations, in-feed/out-feed transfer stations, inspection stations, etc.)of the storage and retrieval system 100.

In one example, the system emulator 100A may include bot emulators thatemulate the actions of one or more respective bots 110. The software ofthe bot emulator may be substantially the same as that found in, forexample, the bot control system described in, for example, U.S. patentapplication Ser. No. 12/757,312, previously incorporated by reference.There may be stub implementations to mimic bot movement in response tobot instructions (e.g. without actual movement of the respective bot).The bot emulators may run in a placeholder bot environment and not onthe actual bot. The placeholder bot environment may include a same hostenvironment or a predefined host environment. In the same hostenvironment, the control server 120 may initiate a predefined number ofbot emulator processes on the same computers 120A, 120B (FIG. 2) thecontrol server 120 is run on. In the predefined host environment thecontrol server 120 may be configured to run the emulations onpredetermined computers that act as one or more components of thecontrol system 1220 of the bot 110 such as, for example, an on-boardcomputer of the bot 110. The predetermined computers may be connected tothe control server 120 in any suitable manner such as through, forexample, wired or wireless connections. The control server 120 mayperform substantially the same startup sequence and networkcommunication protocols within the emulated bot environment as it wouldin a real bot environment. The emulated bot setup may expose deploymentissues with the bots so that the issues may be fixed before therespective physical bots 110 are deployed. Similarly, the control system120 may include, for example, multilevel vertical conveyor emulators,bot transfer station emulators, in-feed and out-feed transfer stationemulators and incoming inspection station emulators. These emulators maybe configured to exercise application program interfaces with thecontrol server, emulate time latency of respective components of thestorage and retrieval system and offer a way to inject random orcontrolled failures into the storage and retrieval system to exerciseexception handling and their effects on system throughput. In alternateembodiments, the control server 120 may be configured to emulate anyportion of the storage and retrieval system 100 in any suitable mannerand for any suitable purpose.

It should be understood that the exemplary embodiments described hereinmay be used individually or in any suitable combination thereof. Itshould also be understood that the foregoing description is onlyillustrative of the embodiments. Various alternatives and modificationscan be devised by those skilled in the art without departing from theembodiments. Accordingly, the present embodiments are intended toembrace all such alternatives, modifications and variances that fallwithin the scope of the appended claims.

What is claimed is:
 1. A method for storing loads in a storage and retrieval system having at least one storage rack with storage areas for holding differing loads, the method comprising: variably sizing the storage areas with a controller of the storage and retrieval system; and assigning, with the controller, each of the variably sized storage areas to a corresponding differing load.
 2. The method of claim 1, further comprising transporting the differing loads for placement in the variably sized storage areas assigned by the controller.
 3. The method of claim 1, further comprising varying, with the controller, a dimension of each of the variably sized storage areas.
 4. The method of claim 1, further comprising varying, with the controller, a position of the variably sized storage areas within the at least one storage rack.
 5. The method of claim 1, further comprising combining, with the controller, adjacent variably sized storage areas.
 6. The method of claim 1, further comprising sizing or resizing, with the controller, at least one of the variably sized storage areas depending on a size of a predetermined load.
 7. The method of claim 1, further comprising determining, with the controller, inventory levels at the end of at least one predetermined order fulfillment time period and scheduling inventory replenishment orders based on the determined inventory levels.
 8. The method of claim 1, further comprising generating, with the controller, at least one pick transaction for removing at least one differing load from the variably sized storage areas.
 9. The method of claim 8, further comprising determining, with the controller, the variably sized storage areas from which the at least one differing load is to be picked and reserving resources of the storage and retrieval system for effecting transfer of the at least one differing load from the variably sized storage areas.
 10. A method for storing loads in a storage and retrieval system having at least one storage rack having storage spaces disposed in storage areas, the method comprising: analyzing, with a controller of the storage and retrieval system, unoccupied storage areas; dynamically re-allocating the unoccupied storage areas, with the controller, into one or more re-allocated storage spaces according to a changed size of a respective unoccupied storage area; and effecting, with the controller, transport of a predetermined load to a predetermined re-allocated storage space.
 11. The method of claim 10, wherein the predetermined load has a size substantially equal to or less than the predetermined re-allocated storage space.
 12. The method of claim 10, further comprising analyzing, with the controller, the unoccupied storage areas after each load placement in the predetermined re-allocated storage space.
 13. The method of claim 10, further comprising varying, with the controller, a position of the one or more re-allocated storage spaces.
 14. The method of claim 10, further comprising combining, with the controller, adjacent unoccupied storage areas into one or more re-allocated storage spaces.
 15. A method for storing loads in a storage and retrieval system, the method comprising: providing an array of multilevel storage rack modules having at least one transfer deck, picking aisles and variable storage areas disposed along the picking aisles, where the variable storage areas are capable of holding at least one load; providing a transport system configured to transport independent loads to the variable storage areas, each of the loads having differing dimensions; and creating, with a controller of the storage and retrieval system, each of the variable storage areas depending on the dimensions of a corresponding load and causing the transport system to place each independent load in a respectively established storage area.
 16. The method of claim 15, further comprising varying, with the controller, a position of the variable storage areas within the array of multilevel storage rack modules.
 17. The method of claim 15, wherein a dimension of the variable storage areas is variable depending on dimensions of the corresponding load.
 18. A storage and retrieval system comprising: an array of multilevel storage racks having at least one transfer deck, picking aisles and at least one storage rack disposed along the picking aisles, each storage rack having storage spaces disposed in storage areas, each storage space being configured to hold a load; and a controller configured to substantially continuously resize empty storage areas as the differing loads are placed on the at least one storage rack so that the storage spaces are free from having a predetermined location.
 19. The storage and retrieval system of claim 18, wherein the controller is further configured to substantially continuously resize empty storage areas as the differing loads are placed on the at least one storage rack so that the storage spaces are free from having a predetermined size.
 20. The storage and retrieval system of claim 18, wherein the controller is configured to analyze the empty storage areas and re-allocate the empty storage areas into one or more re-allocated storage space according to a changed size of a respective empty storage area.
 21. The storage and retrieval system of claim 20, wherein the controller is configured to effect transport of a predetermined load to a predetermined re-allocated storage space.
 22. The storage and retrieval system of claim 18, wherein the controller is configured to analyze the empty storage areas after each load placement in a predetermined storage space.
 23. The storage and retrieval system of claim 18, wherein the controller is configured to combine adjacent empty storage areas into one or more re-allocated storage space.
 24. A storage and retrieval system comprising: an array of multilevel storage racks, each level of the multilevel level storage racks having storage spaces configured to hold a respective load; at least one vertical lift at a fixed planform location within the array of multilevel storage racks, the at least one vertical lift being configured to at least transport loads from each level of the multilevel storage racks, each level having a vertical lift transfer location corresponding to each fixed planform location of the at least one vertical lift; and a controller configured to select a vertical lift transfer location for transport of loads from a respective level of the multilevel storage racks based on a predetermined characteristic of load fill sequencing of a first load in a load fill sequence with respect to another load in the load fill sequence.
 25. The storage and retrieval system of claim 24, wherein the predetermined characteristic is a scarcity of levels on which a predetermined load in the load fill sequence is located.
 26. The storage and retrieval system of claim 25, wherein the controller is configured to look ahead a predetermined number of order lines in the load fill sequence; determine if the other load in one of the predetermined number of order lines exists on fewer than a predetermined number of levels; and select a vertical lift transfer location, for transferring the first load to a corresponding vertical lift, from a level that is different from a level on which the other load is located.
 27. The storage and retrieval system of claim 24, wherein the predetermined characteristic is a ratio of a number of levels on which a stock keeping unit corresponding to the first load is located and a number of levels on which a stock keeping unit corresponding to the other load is located where the other load is downstream from the first load in the load fill sequence.
 28. The storage and retrieval system of claim 24, further comprising at least one autonomous vehicle disposed on each level where the at least one autonomous vehicle is configured to transfer loads between the storage spaces on a respective level and the vertical lift. 